package android.poi;
import android.poi.ParcelableHomeLocation;
import android.poi.ParcelableAreaInfo;
import android.poi.IPoiCallback;
import android.poi.IAreaChangeListener;
import android.poi.IDestInfoListener;
import android.poi.IHomeCallback;

/** @hide */
interface IPoiService{

 /******poi*********/
   const String SERVICE_NAME = "poi_service";

   /**
    * judge have already set home location
    * 
    * @hide */
    boolean hasHomeLocation();
   /**
    * jump to set home location page
    * 
    * @hide */
    void setHomeLocation();
   /**
    * Get home location.
    * @hide */
    ParcelableHomeLocation GetHomeLocation();

   /**
    * Registers a callback used to receive current location.
    * @hide */
   void registerListenCurrentLocation(in IPoiCallback callback);
   
   /**
    * un Registers a callback used to receive current location.
    * @hide */
   void unregisterListenCurrentLocation();
   
    /**
      * Registers a callback listener about area change.
      * @hide */
    void addAreaChangeListener(in IAreaChangeListener li);
    
   /**
    * un Registers a callback listener about area change.
    * @hide */
    void removeAreaChangeListener();
    
    /**
      * Registers a callback listener about dest info change.
      * @hide */
    void addDestInfoListener(in IDestInfoListener li);
    
   /**
    * un Registers a callback listener about dest info change.
    * @hide */
    void removeDestInfoListener();
   /**
    * Registers a callback used to receive home location.
    * @hide */
   void registerListenHomeLocation(in IHomeCallback callback);
   
   /**
    * un Registers a callback used to receive current location.
    * @hide */
   void unregisterListenHomeLocation();
    
    /**
      * app will send navigation location to system
     * @hide */
    void navigationToPOI(double longitude, double latitude, String label);
    
    /**
      * get destination information.
      * @hide */
    ParcelableAreaInfo getDestInfo();
}
